// src/stores/user.ts
import { defineStore } from 'pinia'
import { ref, computed } from 'vue'
import api from '@/api/api'
import type { User } from '@/type/user.ts'


export const useUserStore = defineStore('user', () => {
  // 用户信息状态（包含token）
  const user = ref<User | null>(null)

  // 是否已登录
  const isLoggedIn = computed(() => !!user.value)

  // 设置用户信息（包含token）
  function setUser(userInfo: User) {
    user.value = userInfo
    // 更新api实例的默认Authorization头
    if (userInfo.accessToken) {
      api.defaults.headers.common.Authorization = `Bearer ${userInfo.accessToken}`
    }
  }

  // 清除用户信息
  function clearUser() {
    user.value = null
    localStorage.removeItem('user')
    delete api.defaults.headers.common.Authorization
  }


  return {
    user,
    isLoggedIn,
    setUser,
    clearUser,
  }
})
